pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    fn sum_fibnacci(a: u32, b: u32, threshold: u32) -> u32 {
        let (a, b) = (b, a + b);
        if b > threshold {
            return 0;
        }
        let sum = sum_fibnacci(a, b, threshold);
        if b % 2 == 0 {
            sum
        } else {
            sum + b
        }
    }

    sum_fibnacci(0, 1, threshold) + 1 // 第一个 1 没有在递归中被计算
}
